package com.e.dianshang.controller;


import com.e.dianshang.utils.BusinessException;
import com.e.dianshang.utils.JsonResult;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

/**
 * @author 毕磊
 * @version 1.0
 * @date 2020/10/16 0016 9:26
 */

@RestController
@ControllerAdvice
public class ExceptionController {

    @ExceptionHandler(Throwable.class)
    public Map hander(Exception e){
        JsonResult jsonResult = new JsonResult();
        if(e instanceof BusinessException){

            jsonResult.setCode("101");
            jsonResult.setMsg("验证码不能为空");

        }else{
            jsonResult.setCode("500");
            jsonResult.setMsg("系统开小差,稍后再试");

            //springboot开发的程序, 打成jar包, 在服务器中运行
            //挂起: nohup java -jar sell1.jar &

            // 把异常信息记录到nohup.out文件中
            SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH小时mm分钟ss秒");

            System.out.println("-------------"+format.format(new Date())+"---------------");
            System.out.println(e.toString());   // 异常发生的类型和原因

            // 如果项目上线, 可以不打印栈信息,否则会导致nohup.out文件很快变得很大
            //e.printStackTrace();
        }
        return jsonResult.getValues();
    }
}
